#ifndef BASESERIALPORT_H
#define BASESERIALPORT_H

#include <QObject>
#include <QSerialPort>     //提供访问串口的功能
#include <QSerialPortInfo> //提供系统中存在的串口的信息

class BaseSerialport : public QObject
{
    Q_OBJECT
public:
    explicit BaseSerialport(QObject *parent = nullptr);
public slots:
    /**
     * @brief 打开串口
     *
     * @param portName 串口号
     * @param baudRate 波特率
     * @param dataBits 数据位
     * @param parity 校验位
     * @param stopBits 停止位
     */
    virtual void open(const QString &portName,
                      QSerialPort::BaudRate baudRate,
                      QSerialPort::DataBits dataBits,
                      QSerialPort::Parity parity,
                      QSerialPort::StopBits stopBits);
    virtual void close();
    virtual void send(QByteArray data);
    virtual void receive();
protected slots:
    virtual void onReadyRead();
signals:
    void openResult(bool);
    void receiveok(QByteArray data);

protected:
    QSerialPort *m_port = new QSerialPort();
};

#endif // BASESERIALPORT_H
